import axios from 'axios';
import { MessageBox } from 'element-ui';

// 创建一个 Axios 实例  
// 创建基础axios实例
const service = axios.create({
    baseURL: '/api', // 基础 URL，注意这里应该是后端服务的实际基础路径
    timeout: 10000, // 请求超时时间  
    headers: { 'Content-Type': 'application/json' }, // 默认请求头  
});

// 添加请求拦截器  
service.interceptors.request.use(function (config) {
    // 在发送请求之前可以做一些处理，比如添加认证token等  
    console.log('Request URL:', config.url);  
    return config;
}, function (error) {
    // 对请求错误进行处理  
    return Promise.reject(error);
});

// 添加响应拦截器  
service.interceptors.response.use(
    (res) => {
        // 对响应数据进行处理  
        const { code, message, data } = res.data;
        if (code === 200) {
            return data;
        } else {
            MessageBox.alert(message, '提示', {
                confirmButtonText: '确定',
            });
            return Promise.reject(new Error(message));
        }
    },
    (error) => {
        // 对响应错误进行处理，可以显示错误信息或进行其他操作  
        console.error('API 请求失败:', error);
        return Promise.reject(error);
    }
);

function request(options) {
    // 修正拼写错误：将 methond 改为 method  
    options.method = options.method || 'get';
    options.url = options.url || '';
    options.params = options.params || {};
    options.data = options.data || {};
    options.headers = options.headers || {};
    return service(options);
}

export default request;